[Xcode] Extensionにもバージョン指定があるので注意してください
1 はじめに
Extensionは、iOS8から追加されたアプリ連携の仕組みで、簡単に、Share(共有サイトや共有コンテンツのポスト)や、Photo Editing(写真アプリ内の写真とビデオを編集)などが実装可能です。
Extensionを作成する場合に必要な注意が、Targetの指定です。Xcode 8では、このターゲット指定のデフォルトが、iOS 10になっている(現時点でiOS 10以降対応のアプリを作成することはあまり無いと思います)ため、うっかりすると、何故か「起動しない!」とハマってしまう可能性があります。(実は、私がハマりました)
2 ハマってしまうシナリオ
それでは、Xcode 8で、iOS 9以上に対応した、ShareのExtensionを作成する場面を想定して、ハマってしまう手順を示してみたいと思います。
(1) ホストアプリの作成とターゲット指定
最初に、ホストアプリを作成します。
File > New > Projectで新規にプロジェクトを作成し、Deployment Target を9.0に変更します。
(2) Extensionの追加
File > New > Target で Share Extension を追加します。
(3) iOS 10での動作確認
この状態で、ビルド・インストールすると、Safariなどの共有でその他を選択すると、選択の一覧に追加されていることを確認出来ます。
(4) iOS 9での動作確認
同じものを、iOS 9で実行してみると、動作していないことが確認できます。
3 対応要領
これは、最初にも書いたとおり、ExtensionのTarget指定が、デフォルトでiOS 10になっているため、iOS 9で動作していないだけです。
対応は簡単です、Extension側のTarget指定を修正するだけです。
実行すると、iOS 9でも無事動作していることが確認できます。
4 最後に
iOS 10に対応するために、恐らくみなさん、開発環境をXcode 8に移行されていると思うのですが、まだまだ、iOS 10以降をターゲットとする開発は少ないように感じます。 Extensionなどを作成する場合は、ちょっと注意が必要だと感じました。